﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using DAplicaciones1;

namespace persistencia
{
    class BrMagazine:BrItem
    {
        public override void agregar(Object o)
        {
            try
            {
                Magazine mz = (Magazine)o;
                string sentencia;
                base.agregar(o);
                sentencia = "Insert into Magazine values ('" + mz.OID + "'," + mz.Codigo + "," + mz.NroEdicion + "," + mz.CantPaginas + ")";
                Conexion.ejecutarse(sentencia);
            }
            catch (Exception e1)
            {
                throw new System.ArgumentException("No se pudo insertar la magazine en la Base de datos");
            }
        }
        public override void modificar(Object o)
        {

        }

        public override void eliminar(Object o)
        {

        }

        public override void traerDatos(Object o)
        {


        }


        public override ArrayList traerLista(Object o)
        {

            ArrayList al = new ArrayList();
            Magazine mz = (Magazine)o;
            string sentencia = "select * from ((magazine mz inner join item i on i.itemOID=mz.itemOID )inner Join ContenidoRelacionado cr on cr.itemOID=mz.itemOID) inner join accesoOnline ao on ao.itemOID=mz.itemOID";
            Conexion.traerDatos(sentencia);
            while (Conexion.DataR.Read())
            {
                mz = new Magazine();
                mz.OID = Conexion.obtenerValor("i.itemOID").ToString();
                mz.Nombre = Conexion.obtenerValor("nombre").ToString();
                mz.Costo = Double.Parse(Conexion.obtenerValor("costo").ToString());
                mz.Precio = Double.Parse(Conexion.obtenerValor("i.precio").ToString());
                mz.Codigo = int.Parse( Conexion.obtenerValor("Codigo").ToString());
                mz.NroEdicion = int.Parse(Conexion.obtenerValor("NroEdicion").ToString());
                mz.CantPaginas = int.Parse(Conexion.obtenerValor("CantPaginas").ToString());
                ContenidoRelacionado cr = new ContenidoRelacionado();
                cr.OID = Conexion.obtenerValor("i.itemOID").ToString();
                cr.Precio = Double.Parse(Conexion.obtenerValor("cr.Precio").ToString());
                mz.Agregados.Add(cr);
                AccesoOnline ao = new AccesoOnline();
                ao.OID = Conexion.obtenerValor("i.itemOID").ToString();
                ao.Precio = Double.Parse(Conexion.obtenerValor("ao.Precio").ToString());
                mz.Agregados.Add(ao);
                TiempoEntrega t = new TiempoEntrega();
                mz.Agregados.Add(t);
                al.Add(mz);
            }

            Conexion.finConsulta();

            return al;
        }

    }
}
